package org.ipower.examsystem.service;

import java.util.List;
import org.ipower.examsystem.dao.MembershipCatalogDao;
import org.ipower.examsystem.dao.MembershipDao;
import org.ipower.examsystem.domain.Membership;
import org.ipower.examsystem.domain.MembershipCatalog;
import org.ipower.platform.domain.Pager;
import org.ipower.platform.domain.QueryCondition;

/**
 * 会员管理服务。
 * @author jeasonyoung
 */
public interface MembershipService extends ModuleService {
     /**
     * 设置会员管理数据访问接口。
     * @param dao 会员数据访问接口。
     * */
    public void setMembershipDao(MembershipDao dao);
    /**
     * 设置会员科目数据访问接口。
     * @param dao 会员科目数据访问接口。
     * */
    public void setMembershipCatalogDao(MembershipCatalogDao dao);
    /**
    * 查询数据。
    * @param ascProperty 排序字段。
    * @param isAsc 是否升序。
    * @param start 开始索引。
    * @param limit 限定数据。
    * @param entites 查询组合。
    * @return 分页数据。
    * */
     public Pager<Membership> findAll(String ascProperty, boolean isAsc, int start, int limit, List<QueryCondition> entites);
    /**
     * 创建科目树。
     * @param memberID 会员ID。
     * @return 数据。
     * */
    public MembershipCatalogInfoCollection createCatalogTree(String memberID);
     /**
     * 更新数据。
     * @param data 会员信息。
     * @param list 会员科目集合。
     * */
    public void update(Membership data, List<MembershipCatalog> list);
    /**
     * 删除数据。
     * @param memberID 会员ID。
     * */
    public void delete(String memberID);
}